// Use of this source code is governed by a MIT license that can be found in the LICENSE file.
// sms10086@hotmail.com

/*
 * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
 *
 * This file is part of FFmpeg.
 *
 * FFmpeg is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * FFmpeg is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with FFmpeg; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 */

package goffmpeg6


const AVPALETTE_SIZE = 1024
const AVPALETTE_COUNT = 256
var AV_PIX_FMT_RGB32 = AV_PIX_FMT_BGRA
var AV_PIX_FMT_RGB32_1 = AV_PIX_FMT_ABGR
var AV_PIX_FMT_BGR32 = AV_PIX_FMT_RGBA
var AV_PIX_FMT_BGR32_1 = AV_PIX_FMT_ARGB
var AV_PIX_FMT_0RGB32 = AV_PIX_FMT_BGR0
var AV_PIX_FMT_0BGR32 = AV_PIX_FMT_RGB0
var AV_PIX_FMT_GRAY9 = AV_PIX_FMT_GRAY9LE
var AV_PIX_FMT_GRAY10 = AV_PIX_FMT_GRAY10LE
var AV_PIX_FMT_GRAY12 = AV_PIX_FMT_GRAY12LE
var AV_PIX_FMT_GRAY14 = AV_PIX_FMT_GRAY14LE
var AV_PIX_FMT_GRAY16 = AV_PIX_FMT_GRAY16LE
var AV_PIX_FMT_YA16 = AV_PIX_FMT_YA16LE
var AV_PIX_FMT_RGB48 = AV_PIX_FMT_RGB48LE
var AV_PIX_FMT_RGB565 = AV_PIX_FMT_RGB565LE
var AV_PIX_FMT_RGB555 = AV_PIX_FMT_RGB555LE
var AV_PIX_FMT_RGB444 = AV_PIX_FMT_RGB444LE
var AV_PIX_FMT_RGBA64 = AV_PIX_FMT_RGBA64LE
var AV_PIX_FMT_BGR48 = AV_PIX_FMT_BGR48LE
var AV_PIX_FMT_BGR565 = AV_PIX_FMT_BGR565LE
var AV_PIX_FMT_BGR555 = AV_PIX_FMT_BGR555LE
var AV_PIX_FMT_BGR444 = AV_PIX_FMT_BGR444LE
var AV_PIX_FMT_BGRA64 = AV_PIX_FMT_BGRA64LE
var AV_PIX_FMT_YUV420P9 = AV_PIX_FMT_YUV420P9LE
var AV_PIX_FMT_YUV422P9 = AV_PIX_FMT_YUV422P9LE
var AV_PIX_FMT_YUV444P9 = AV_PIX_FMT_YUV444P9LE
var AV_PIX_FMT_YUV420P10 = AV_PIX_FMT_YUV420P10LE
var AV_PIX_FMT_YUV422P10 = AV_PIX_FMT_YUV422P10LE
var AV_PIX_FMT_YUV440P10 = AV_PIX_FMT_YUV440P10LE
var AV_PIX_FMT_YUV444P10 = AV_PIX_FMT_YUV444P10LE
var AV_PIX_FMT_YUV420P12 = AV_PIX_FMT_YUV420P12LE
var AV_PIX_FMT_YUV422P12 = AV_PIX_FMT_YUV422P12LE
var AV_PIX_FMT_YUV440P12 = AV_PIX_FMT_YUV440P12LE
var AV_PIX_FMT_YUV444P12 = AV_PIX_FMT_YUV444P12LE
var AV_PIX_FMT_YUV420P14 = AV_PIX_FMT_YUV420P14LE
var AV_PIX_FMT_YUV422P14 = AV_PIX_FMT_YUV422P14LE
var AV_PIX_FMT_YUV444P14 = AV_PIX_FMT_YUV444P14LE
var AV_PIX_FMT_YUV420P16 = AV_PIX_FMT_YUV420P16LE
var AV_PIX_FMT_YUV422P16 = AV_PIX_FMT_YUV422P16LE
var AV_PIX_FMT_YUV444P16 = AV_PIX_FMT_YUV444P16LE
var AV_PIX_FMT_GBRP9 = AV_PIX_FMT_GBRP9LE
var AV_PIX_FMT_GBRP10 = AV_PIX_FMT_GBRP10LE
var AV_PIX_FMT_GBRP12 = AV_PIX_FMT_GBRP12LE
var AV_PIX_FMT_GBRP14 = AV_PIX_FMT_GBRP14LE
var AV_PIX_FMT_GBRP16 = AV_PIX_FMT_GBRP16LE
var AV_PIX_FMT_GBRAP10 = AV_PIX_FMT_GBRAP10LE
var AV_PIX_FMT_GBRAP12 = AV_PIX_FMT_GBRAP12LE
var AV_PIX_FMT_GBRAP14 = AV_PIX_FMT_GBRAP14LE
var AV_PIX_FMT_GBRAP16 = AV_PIX_FMT_GBRAP16LE
var AV_PIX_FMT_BAYER_BGGR16 = AV_PIX_FMT_BAYER_BGGR16LE
var AV_PIX_FMT_BAYER_RGGB16 = AV_PIX_FMT_BAYER_RGGB16LE
var AV_PIX_FMT_BAYER_GBRG16 = AV_PIX_FMT_BAYER_GBRG16LE
var AV_PIX_FMT_BAYER_GRBG16 = AV_PIX_FMT_BAYER_GRBG16LE
var AV_PIX_FMT_GBRPF32 = AV_PIX_FMT_GBRPF32LE
var AV_PIX_FMT_GBRAPF32 = AV_PIX_FMT_GBRAPF32LE
var AV_PIX_FMT_GRAYF32 = AV_PIX_FMT_GRAYF32LE
var AV_PIX_FMT_YUVA420P9 = AV_PIX_FMT_YUVA420P9LE
var AV_PIX_FMT_YUVA422P9 = AV_PIX_FMT_YUVA422P9LE
var AV_PIX_FMT_YUVA444P9 = AV_PIX_FMT_YUVA444P9LE
var AV_PIX_FMT_YUVA420P10 = AV_PIX_FMT_YUVA420P10LE
var AV_PIX_FMT_YUVA422P10 = AV_PIX_FMT_YUVA422P10LE
var AV_PIX_FMT_YUVA444P10 = AV_PIX_FMT_YUVA444P10LE
var AV_PIX_FMT_YUVA422P12 = AV_PIX_FMT_YUVA422P12LE
var AV_PIX_FMT_YUVA444P12 = AV_PIX_FMT_YUVA444P12LE
var AV_PIX_FMT_YUVA420P16 = AV_PIX_FMT_YUVA420P16LE
var AV_PIX_FMT_YUVA422P16 = AV_PIX_FMT_YUVA422P16LE
var AV_PIX_FMT_YUVA444P16 = AV_PIX_FMT_YUVA444P16LE
var AV_PIX_FMT_XYZ12 = AV_PIX_FMT_XYZ12LE
var AV_PIX_FMT_NV20 = AV_PIX_FMT_NV20LE
var AV_PIX_FMT_AYUV64 = AV_PIX_FMT_AYUV64LE
var AV_PIX_FMT_P010 = AV_PIX_FMT_P010LE
var AV_PIX_FMT_P012 = AV_PIX_FMT_P012LE
var AV_PIX_FMT_P016 = AV_PIX_FMT_P016LE
var AV_PIX_FMT_Y210 = AV_PIX_FMT_Y210LE
var AV_PIX_FMT_Y212 = AV_PIX_FMT_Y212LE
var AV_PIX_FMT_XV30 = AV_PIX_FMT_XV30LE
var AV_PIX_FMT_XV36 = AV_PIX_FMT_XV36LE
var AV_PIX_FMT_X2RGB10 = AV_PIX_FMT_X2RGB10LE
var AV_PIX_FMT_X2BGR10 = AV_PIX_FMT_X2BGR10LE
var AV_PIX_FMT_P210 = AV_PIX_FMT_P210LE
var AV_PIX_FMT_P410 = AV_PIX_FMT_P410LE
var AV_PIX_FMT_P212 = AV_PIX_FMT_P212LE
var AV_PIX_FMT_P412 = AV_PIX_FMT_P412LE
var AV_PIX_FMT_P216 = AV_PIX_FMT_P216LE
var AV_PIX_FMT_P416 = AV_PIX_FMT_P416LE
var AV_PIX_FMT_RGBAF16 = AV_PIX_FMT_RGBAF16LE
var AV_PIX_FMT_RGBF32 = AV_PIX_FMT_RGBF32LE
var AV_PIX_FMT_RGBAF32 = AV_PIX_FMT_RGBAF32LE


                       
                       

/**
 * @file
 * pixel format definitions
 */

                               
                    




/**
 * Pixel format.
 *
 * @note
 * AV_PIX_FMT_RGB32 is handled in an endian-specific manner. An RGBA
 * color is put together as:
 *  (A << 24) | (R << 16) | (G << 8) | B
 * This is stored as BGRA on little-endian CPU architectures and ARGB on
 * big-endian CPUs.
 *
 * @note
 * If the resolution is not a multiple of the chroma subsampling factor
 * then the chroma plane resolution must be rounded up.
 *
 * @par
 * When the pixel format is palettized RGB32 (AV_PIX_FMT_PAL8), the palettized
 * image data is stored in AVFrame.data[0]. The palette is transported in
 * AVFrame.data[1], is 1024 bytes long (256 4-byte entries) and is
 * formatted the same as in AV_PIX_FMT_RGB32 described above (i.e., it is
 * also endian-specific). Note also that the individual RGB32 palette
 * components stored in AVFrame.data[1] should be in the range 0..255.
 * This is important as many custom PAL8 video codecs that were designed
 * to run on the IBM VGA graphics adapter use 6-bit palette components.
 *
 * @par
 * For all the 8 bits per pixel formats, an RGB32 palette is in data[1] like
 * for pal8. This palette is filled in automatically by the function
 * allocating the picture.
 */
type AVPixelFormat int32
const (
    AV_PIX_FMT_NONE AVPixelFormat = -1 + iota
    AV_PIX_FMT_YUV420P
    AV_PIX_FMT_YUYV422
    AV_PIX_FMT_RGB24
    AV_PIX_FMT_BGR24
    AV_PIX_FMT_YUV422P
    AV_PIX_FMT_YUV444P
    AV_PIX_FMT_YUV410P
    AV_PIX_FMT_YUV411P
    AV_PIX_FMT_GRAY8
    AV_PIX_FMT_MONOWHITE
    AV_PIX_FMT_MONOBLACK
    AV_PIX_FMT_PAL8
    AV_PIX_FMT_YUVJ420P
    AV_PIX_FMT_YUVJ422P
    AV_PIX_FMT_YUVJ444P
    AV_PIX_FMT_UYVY422
    AV_PIX_FMT_UYYVYY411
    AV_PIX_FMT_BGR8
    AV_PIX_FMT_BGR4
    AV_PIX_FMT_BGR4_BYTE
    AV_PIX_FMT_RGB8
    AV_PIX_FMT_RGB4
    AV_PIX_FMT_RGB4_BYTE
    AV_PIX_FMT_NV12
    AV_PIX_FMT_NV21
    AV_PIX_FMT_ARGB
    AV_PIX_FMT_RGBA
    AV_PIX_FMT_ABGR
    AV_PIX_FMT_BGRA
    AV_PIX_FMT_GRAY16BE
    AV_PIX_FMT_GRAY16LE
    AV_PIX_FMT_YUV440P
    AV_PIX_FMT_YUVJ440P
    AV_PIX_FMT_YUVA420P
    AV_PIX_FMT_RGB48BE
    AV_PIX_FMT_RGB48LE
    AV_PIX_FMT_RGB565BE
    AV_PIX_FMT_RGB565LE
    AV_PIX_FMT_RGB555BE
    AV_PIX_FMT_RGB555LE
    AV_PIX_FMT_BGR565BE
    AV_PIX_FMT_BGR565LE
    AV_PIX_FMT_BGR555BE
    AV_PIX_FMT_BGR555LE
    AV_PIX_FMT_VAAPI
    AV_PIX_FMT_YUV420P16LE
    AV_PIX_FMT_YUV420P16BE
    AV_PIX_FMT_YUV422P16LE
    AV_PIX_FMT_YUV422P16BE
    AV_PIX_FMT_YUV444P16LE
    AV_PIX_FMT_YUV444P16BE
    AV_PIX_FMT_DXVA2_VLD
    AV_PIX_FMT_RGB444LE
    AV_PIX_FMT_RGB444BE
    AV_PIX_FMT_BGR444LE
    AV_PIX_FMT_BGR444BE
    AV_PIX_FMT_YA8
    AV_PIX_FMT_Y400A = AV_PIX_FMT_YA8
    AV_PIX_FMT_GRAY8A = AV_PIX_FMT_YA8
    AV_PIX_FMT_BGR48BE = AV_PIX_FMT_YA8 + iota - 59
    AV_PIX_FMT_BGR48LE
    AV_PIX_FMT_YUV420P9BE
    AV_PIX_FMT_YUV420P9LE
    AV_PIX_FMT_YUV420P10BE
    AV_PIX_FMT_YUV420P10LE
    AV_PIX_FMT_YUV422P10BE
    AV_PIX_FMT_YUV422P10LE
    AV_PIX_FMT_YUV444P9BE
    AV_PIX_FMT_YUV444P9LE
    AV_PIX_FMT_YUV444P10BE
    AV_PIX_FMT_YUV444P10LE
    AV_PIX_FMT_YUV422P9BE
    AV_PIX_FMT_YUV422P9LE
    AV_PIX_FMT_GBRP
    AV_PIX_FMT_GBR24P = AV_PIX_FMT_GBRP
    AV_PIX_FMT_GBRP9BE = AV_PIX_FMT_GBRP + iota - 75
    AV_PIX_FMT_GBRP9LE
    AV_PIX_FMT_GBRP10BE
    AV_PIX_FMT_GBRP10LE
    AV_PIX_FMT_GBRP16BE
    AV_PIX_FMT_GBRP16LE
    AV_PIX_FMT_YUVA422P
    AV_PIX_FMT_YUVA444P
    AV_PIX_FMT_YUVA420P9BE
    AV_PIX_FMT_YUVA420P9LE
    AV_PIX_FMT_YUVA422P9BE
    AV_PIX_FMT_YUVA422P9LE
    AV_PIX_FMT_YUVA444P9BE
    AV_PIX_FMT_YUVA444P9LE
    AV_PIX_FMT_YUVA420P10BE
    AV_PIX_FMT_YUVA420P10LE
    AV_PIX_FMT_YUVA422P10BE
    AV_PIX_FMT_YUVA422P10LE
    AV_PIX_FMT_YUVA444P10BE
    AV_PIX_FMT_YUVA444P10LE
    AV_PIX_FMT_YUVA420P16BE
    AV_PIX_FMT_YUVA420P16LE
    AV_PIX_FMT_YUVA422P16BE
    AV_PIX_FMT_YUVA422P16LE
    AV_PIX_FMT_YUVA444P16BE
    AV_PIX_FMT_YUVA444P16LE
    AV_PIX_FMT_VDPAU
    AV_PIX_FMT_XYZ12LE
    AV_PIX_FMT_XYZ12BE
    AV_PIX_FMT_NV16
    AV_PIX_FMT_NV20LE
    AV_PIX_FMT_NV20BE
    AV_PIX_FMT_RGBA64BE
    AV_PIX_FMT_RGBA64LE
    AV_PIX_FMT_BGRA64BE
    AV_PIX_FMT_BGRA64LE
    AV_PIX_FMT_YVYU422
    AV_PIX_FMT_YA16BE
    AV_PIX_FMT_YA16LE
    AV_PIX_FMT_GBRAP
    AV_PIX_FMT_GBRAP16BE
    AV_PIX_FMT_GBRAP16LE
    AV_PIX_FMT_QSV
    AV_PIX_FMT_MMAL
    AV_PIX_FMT_D3D11VA_VLD
    AV_PIX_FMT_CUDA
    AV_PIX_FMT_0RGB
    AV_PIX_FMT_RGB0
    AV_PIX_FMT_0BGR
    AV_PIX_FMT_BGR0
    AV_PIX_FMT_YUV420P12BE
    AV_PIX_FMT_YUV420P12LE
    AV_PIX_FMT_YUV420P14BE
    AV_PIX_FMT_YUV420P14LE
    AV_PIX_FMT_YUV422P12BE
    AV_PIX_FMT_YUV422P12LE
    AV_PIX_FMT_YUV422P14BE
    AV_PIX_FMT_YUV422P14LE
    AV_PIX_FMT_YUV444P12BE
    AV_PIX_FMT_YUV444P12LE
    AV_PIX_FMT_YUV444P14BE
    AV_PIX_FMT_YUV444P14LE
    AV_PIX_FMT_GBRP12BE
    AV_PIX_FMT_GBRP12LE
    AV_PIX_FMT_GBRP14BE
    AV_PIX_FMT_GBRP14LE
    AV_PIX_FMT_YUVJ411P
    AV_PIX_FMT_BAYER_BGGR8
    AV_PIX_FMT_BAYER_RGGB8
    AV_PIX_FMT_BAYER_GBRG8
    AV_PIX_FMT_BAYER_GRBG8
    AV_PIX_FMT_BAYER_BGGR16LE
    AV_PIX_FMT_BAYER_BGGR16BE
    AV_PIX_FMT_BAYER_RGGB16LE
    AV_PIX_FMT_BAYER_RGGB16BE
    AV_PIX_FMT_BAYER_GBRG16LE
    AV_PIX_FMT_BAYER_GBRG16BE
    AV_PIX_FMT_BAYER_GRBG16LE
    AV_PIX_FMT_BAYER_GRBG16BE
    AV_PIX_FMT_XVMC
    AV_PIX_FMT_YUV440P10LE
    AV_PIX_FMT_YUV440P10BE
    AV_PIX_FMT_YUV440P12LE
    AV_PIX_FMT_YUV440P12BE
    AV_PIX_FMT_AYUV64LE
    AV_PIX_FMT_AYUV64BE
    AV_PIX_FMT_VIDEOTOOLBOX
    AV_PIX_FMT_P010LE
    AV_PIX_FMT_P010BE
    AV_PIX_FMT_GBRAP12BE
    AV_PIX_FMT_GBRAP12LE
    AV_PIX_FMT_GBRAP10BE
    AV_PIX_FMT_GBRAP10LE
    AV_PIX_FMT_MEDIACODEC
    AV_PIX_FMT_GRAY12BE
    AV_PIX_FMT_GRAY12LE
    AV_PIX_FMT_GRAY10BE
    AV_PIX_FMT_GRAY10LE
    AV_PIX_FMT_P016LE
    AV_PIX_FMT_P016BE
    AV_PIX_FMT_D3D11
    AV_PIX_FMT_GRAY9BE
    AV_PIX_FMT_GRAY9LE
    AV_PIX_FMT_GBRPF32BE
    AV_PIX_FMT_GBRPF32LE
    AV_PIX_FMT_GBRAPF32BE
    AV_PIX_FMT_GBRAPF32LE
    AV_PIX_FMT_DRM_PRIME
    AV_PIX_FMT_OPENCL
    AV_PIX_FMT_GRAY14BE
    AV_PIX_FMT_GRAY14LE
    AV_PIX_FMT_GRAYF32BE
    AV_PIX_FMT_GRAYF32LE
    AV_PIX_FMT_YUVA422P12BE
    AV_PIX_FMT_YUVA422P12LE
    AV_PIX_FMT_YUVA444P12BE
    AV_PIX_FMT_YUVA444P12LE
    AV_PIX_FMT_NV24
    AV_PIX_FMT_NV42
    AV_PIX_FMT_VULKAN
    AV_PIX_FMT_Y210BE
    AV_PIX_FMT_Y210LE
    AV_PIX_FMT_X2RGB10LE
    AV_PIX_FMT_X2RGB10BE
    AV_PIX_FMT_X2BGR10LE
    AV_PIX_FMT_X2BGR10BE
    AV_PIX_FMT_P210BE
    AV_PIX_FMT_P210LE
    AV_PIX_FMT_P410BE
    AV_PIX_FMT_P410LE
    AV_PIX_FMT_P216BE
    AV_PIX_FMT_P216LE
    AV_PIX_FMT_P416BE
    AV_PIX_FMT_P416LE
    AV_PIX_FMT_VUYA
    AV_PIX_FMT_RGBAF16BE
    AV_PIX_FMT_RGBAF16LE
    AV_PIX_FMT_VUYX
    AV_PIX_FMT_P012LE
    AV_PIX_FMT_P012BE
    AV_PIX_FMT_Y212BE
    AV_PIX_FMT_Y212LE
    AV_PIX_FMT_XV30BE
    AV_PIX_FMT_XV30LE
    AV_PIX_FMT_XV36BE
    AV_PIX_FMT_XV36LE
    AV_PIX_FMT_RGBF32BE
    AV_PIX_FMT_RGBF32LE
    AV_PIX_FMT_RGBAF32BE
    AV_PIX_FMT_RGBAF32LE
    AV_PIX_FMT_P212BE
    AV_PIX_FMT_P212LE
    AV_PIX_FMT_P412BE
    AV_PIX_FMT_P412LE
    AV_PIX_FMT_GBRAP14BE
    AV_PIX_FMT_GBRAP14LE
    AV_PIX_FMT_NB
)


                     
                                                
     

      





































































































/**
  * Chromaticity coordinates of the source primaries.
  * These values match the ones defined by ISO/IEC 23091-2_2019 subclause 8.1 and ITU-T H.273.
  */
type AVColorPrimaries int32
const (
    AVCOL_PRI_RESERVED0 AVColorPrimaries = 0 + iota
    AVCOL_PRI_BT709 = 1
    AVCOL_PRI_UNSPECIFIED = 2
    AVCOL_PRI_RESERVED = 3
    AVCOL_PRI_BT470M = 4
    AVCOL_PRI_BT470BG = 5
    AVCOL_PRI_SMPTE170M = 6
    AVCOL_PRI_SMPTE240M = 7
    AVCOL_PRI_FILM = 8
    AVCOL_PRI_BT2020 = 9
    AVCOL_PRI_SMPTE428 = 10
    AVCOL_PRI_SMPTEST428_1 = AVCOL_PRI_SMPTE428
    AVCOL_PRI_SMPTE431 = 11
    AVCOL_PRI_SMPTE432 = 12
    AVCOL_PRI_EBU3213 = 22
    AVCOL_PRI_JEDEC_P22 = AVCOL_PRI_EBU3213
    AVCOL_PRI_NB = AVCOL_PRI_EBU3213 + iota - 15
)


/**
 * Color Transfer Characteristic.
 * These values match the ones defined by ISO/IEC 23091-2_2019 subclause 8.2.
 */
type AVColorTransferCharacteristic int32
const (
    AVCOL_TRC_RESERVED0 AVColorTransferCharacteristic = 0 + iota
    AVCOL_TRC_BT709 = 1
    AVCOL_TRC_UNSPECIFIED = 2
    AVCOL_TRC_RESERVED = 3
    AVCOL_TRC_GAMMA22 = 4
    AVCOL_TRC_GAMMA28 = 5
    AVCOL_TRC_SMPTE170M = 6
    AVCOL_TRC_SMPTE240M = 7
    AVCOL_TRC_LINEAR = 8
    AVCOL_TRC_LOG = 9
    AVCOL_TRC_LOG_SQRT = 10
    AVCOL_TRC_IEC61966_2_4 = 11
    AVCOL_TRC_BT1361_ECG = 12
    AVCOL_TRC_IEC61966_2_1 = 13
    AVCOL_TRC_BT2020_10 = 14
    AVCOL_TRC_BT2020_12 = 15
    AVCOL_TRC_SMPTE2084 = 16
    AVCOL_TRC_SMPTEST2084 = AVCOL_TRC_SMPTE2084
    AVCOL_TRC_SMPTE428 = 17
    AVCOL_TRC_SMPTEST428_1 = AVCOL_TRC_SMPTE428
    AVCOL_TRC_ARIB_STD_B67 = 18
    AVCOL_TRC_NB = 18 + iota - 20
)


/**
 * YUV colorspace type.
 * These values match the ones defined by ISO/IEC 23091-2_2019 subclause 8.3.
 */
type AVColorSpace int32
const (
    AVCOL_SPC_RGB AVColorSpace = 0 + iota
    AVCOL_SPC_BT709 = 1
    AVCOL_SPC_UNSPECIFIED = 2
    AVCOL_SPC_RESERVED = 3
    AVCOL_SPC_FCC = 4
    AVCOL_SPC_BT470BG = 5
    AVCOL_SPC_SMPTE170M = 6
    AVCOL_SPC_SMPTE240M = 7
    AVCOL_SPC_YCGCO = 8
    AVCOL_SPC_YCOCG = AVCOL_SPC_YCGCO
    AVCOL_SPC_BT2020_NCL = 9
    AVCOL_SPC_BT2020_CL = 10
    AVCOL_SPC_SMPTE2085 = 11
    AVCOL_SPC_CHROMA_DERIVED_NCL = 12
    AVCOL_SPC_CHROMA_DERIVED_CL = 13
    AVCOL_SPC_ICTCP = 14
    AVCOL_SPC_NB = 14 + iota - 15
)


/**
 * Visual content value range.
 *
 * These values are based on definitions that can be found in multiple
 * specifications, such as ITU-T BT.709 (3.4 - Quantization of RGB, luminance
 * and colour-difference signals), ITU-T BT.2020 (Table 5 - Digital
 * Representation) as well as ITU-T BT.2100 (Table 9 - Digital 10- and 12-bit
 * integer representation). At the time of writing, the BT.2100 one is
 * recommended, as it also defines the full range representation.
 *
 * Common definitions:
 *   - For RGB and luma planes such as Y in YCbCr and I in ICtCp,
 *     'E' is the original value in range of 0.0 to 1.0.
 *   - For chroma planes such as Cb,Cr and Ct,Cp, 'E' is the original
 *     value in range of -0.5 to 0.5.
 *   - 'n' is the output bit depth.
 *   - For additional definitions such as rounding and clipping to valid n
 *     bit unsigned integer range, please refer to BT.2100 (Table 9).
 */
type AVColorRange int32
const (
    AVCOL_RANGE_UNSPECIFIED AVColorRange = 0 + iota
    AVCOL_RANGE_MPEG = 1
    AVCOL_RANGE_JPEG = 2
    AVCOL_RANGE_NB = 2 + iota - 2
)


/**
 * Location of chroma samples.
 *
 * Illustration showing the location of the first (top left) chroma sample of the
 * image, the left shows only luma, the right
 * shows the location of the chroma sample, the 2 could be imagined to overlay
 * each other but are drawn separately due to limitations of ASCII
 *
 *                1st 2nd       1st 2nd horizontal luma sample positions
 *                 v   v         v   v
 *                 ______        ______
 *1st luma line > |X   X ...    |3 4 X ...     X are luma samples,
 *                |             |1 2           1-6 are possible chroma positions
 *2nd luma line > |X   X ...    |5 6 X ...     0 is undefined/unknown position
 */
type AVChromaLocation int32
const (
    AVCHROMA_LOC_UNSPECIFIED AVChromaLocation = 0 + iota
    AVCHROMA_LOC_LEFT = 1
    AVCHROMA_LOC_CENTER = 2
    AVCHROMA_LOC_TOPLEFT = 3
    AVCHROMA_LOC_TOP = 4
    AVCHROMA_LOC_BOTTOMLEFT = 5
    AVCHROMA_LOC_BOTTOM = 6
    AVCHROMA_LOC_NB = 6 + iota - 6
)


                            
